package test

import (
	"blog/utils/tools"
	"bufio"
	"encoding/json"
	"fmt"
	"io"
	"strconv"
)

// TxtToEs 把txt文件读取然后导入到es -- ok 成功
func TxtToEs(filePath string) {
	file, err := tools.OpenFile(filePath)
	if err != nil {
		fmt.Println(err)
	}
	//fmt.Println(file)
	defer file.Close()

	// 逐行读取txt文件数据
	br := bufio.NewReader(file)
	readLine := 1
	for {
		a, _, c := br.ReadLine()
		if c == io.EOF {
			break
		}
		if string(a) == "" {
			continue
		}
		// 使用匿名结构体存储一行数据
		var s struct {
			Content string `json:"content"`
			Title   string `json:"title"`
		}
		// 结构体转为json字符串
		s.Content = string(a) // 赋值，将这一行数据给s.Content
		s.Title = "行号:" + strconv.Itoa(readLine)

		res, err := json.Marshal(s)
		if err != nil {
			fmt.Println(err)
		}
		fmt.Println(string(res))
		// 把这一行数据写入es
		err = tools.AddJson(string(res), "note_yu") // 第二个参数是es中index，第三个参数是es中type
		if err != nil {
			fmt.Println("写入es失败", err)
		}
		readLine++
	}
}
